POV-Ray : Newsgroups : povray.binaries.images : mathematic curve - 52Ko - Breather.jpg (1/1) : Re: mathematic curve - 52Ko - Breather.jpg (1/1) Server Time
8 Aug 2024 20:23:58 EDT (-0400)
  Re: mathematic curve - 52Ko - Breather.jpg (1/1)  
From: Mike Williams
Date: 8 May 2005 14:51:10
Message: <8yyMzBAJ9lfCFw$B@econym.demon.co.uk>
Wasn't it Burki who wrote:
>kurtz le pirate <kur### [at] yahoofr> wrote:
>> what do you think about it?
>
>Yes, nice work. May inspire someone to find an isosurface function for the
>shape!

I can do it as a parametric, but it's a bit slow, so I suggest using
Ingo Janssen's "param.inc" approximation to speed it up. This code has
been on my isosurface tutorial page since January.

// Breather Surface

camera { location  <30, 10, -30> look_at <0, 0, 0> angle 15}

sky_sphere { pigment {
    function{abs(y)}
    color_map { [0.0 color blue 0.6] [1.0 color rgb 1] }
  }
}

light_source {<100,200,-100> colour rgb 1}
light_source {<-100,-200,-100> colour rgb 0.5}

#declare aa = 0.45;  // Values from 0.4 to 0.6 produce sensible results

#declare w1 = 1 - aa * aa;
#declare w = sqrt(w1);
#declare d = function(u,v){ aa * (pow((w * cosh(aa * u)),2) + pow((aa *
sin(w * v)),2))}


#declare Fx = function(u,v){ -u + (2 * w1 * cosh(aa * u) * sinh(aa * u)
/ d(u,v)) }
#declare Fy = function(u,v){2 * w * cosh(aa * u) * (-(w * cos(v) * cos(w
* v)) - (sin(v) * sin(w * v))) / d(u,v)}
#declare Fz = function(u,v){2 * w * cosh(aa * u) * (-(w * sin(v) * cos(w
* v)) + (cos(v) * sin(w * v))) / d(u,v)}

#include "param.inc"

object {Parametric(Fx,Fy,Fz,<-20,0>,<20,12.5/aa/aa>,200,200,"")
  pigment {uv_mapping checker rgb 0.9 rgb 0.8 scale 0.6}
  finish {phong 0.5 phong_size 10}
  no_shadow
}


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.